import axios from 'axios'
import { getToken, removeToken, removeUserId } from './localData';
import { Dialog } from 'vant'
import router from '../router/index'

//封装一个网址方便管理基地址
axios.defaults.baseURL='http://127.0.0.1:3000'
//在线数据库网址
// axios.defaults.baseURL='http://157.122.54.189:9083'
//添加请求拦截器-axios发送前请求自动执行一个函数
axios.interceptors.request.use(
    //config 就是请求是的配置
    (config) =>{
        //在发送请求之前做了什么，获取到数据然后添加到token
        console.log('axios请求发送前',config);
        //读取本地存储的 token 就是读取本地浏览器里面的用户账号的数据
        const token = getToken()
        //判断有没有token，有的话就添加到请求头重
        if(token){
            config.headers.Authorization=token
        }
        //返回修改后的配置
        return config
    },
    (error)=>{
        //请求错误的话，就把表示失败的error传递给catch()
        return Promise.reject(error)
    }
)

// 添加响应拦截器
axios.interceptors.response.use(
    (response) => {
      // console.log('服务器响应数据后，axios 会自动调用的函数', response)
      if (response.data.message === '用户信息验证失败') {
        //删除已过期用户信息
        removeToken()
        removeUserId()
        Dialog.confirm({
          title: '用户认证失败',
          message: '需要登录后再操作',
          confirmButtonText: '去登录',
          cancelButtonText: '残忍拒绝',
        })
          .then(() => {
            // on confirm
           const from=  location.href
            router.push({
              
              name:'/login',
              params:{
                from:from
              }
            
            })
          })
          .catch(() => {
            // on cancel
          })
      }
      // 返回的数据
      return response
    },
    (error) => Promise.reject(error),
  )

export default axios